stale time , gc time
❓질문
tanstack-query에서 stale time과 gc time의 차이점에 대해서 설명해주세요
💡 조사하기전 내가 알고 있던 내용
tanstack-query에서 stale time은 텐스택 쿼리에서 외부 api통신으로 가져온 데이터를 캐싱해놓고 신선한 상태를 얼마의 시간을 기준으로 잡고 새로 요청하는지에 대한 값으로 알고있습니다 stale time을 작게 설정할수록 신선한 상태를 유지하기 위해 요청이 잦을것이고 반대로 stale time을 크게 설정할수록 한번 가지고온 데이터를 신선한 상태로 생각하고 요청을 비교적 덜 하게 될겁니다
🏫 정리한 내용
stale time
은 데이터가 얼마나 오래 신선한
상태로 유지 되는지 정하는 시간입니다
gc time은 해당 쿼리가 사용할곳이 없게된 이후에도 캐시 데이터를 얼마나 유지되게할지 결정하는 시간입니다.
자세히 설명하면 stale time을 5분으로 설정할시에 5분동아느 refetch 하더라도 신선한
데이터로 취급하기 때문에 추가 네트워크 요청없이 캐시된 데이터를 사용합니다.
기본 값은 0입니다.
gc time
은 해당 쿼리가 사용되지 않는 시점에서 설정된 시간이 지나면 캐시에서 데이터가 삭제됩니다.
ex) gc time = "10분" 일시 해당 쿼리를 사용하는 Component가 Unmount 된 시점으로 부터 10분뒤에 캐시 데이터가 삭제 됩니다.
기본값은 5분입니다.
둘다 Tanstack-query에서 캐시를 저장 , 사용 하는데 있어서 설정값 입니다.